package com.itheima.d9_interface3;

public class Test {
    public static void main(String[] args) {
        Dog d = new Dog();
        d.show();
        A3 a3 = new A3();
        a3.go();
    }
}
//1.接口与接口可以多继承：一个接口可以同时继承多个接口
interface A {}
interface B {}
interface C extends A, B {}
//2.一个接口继承多个接口，如果多个接口中存在方法签名冲突，则此时不支持多继承，也不支持多实现。
//不报错但是不对
interface A1 {
    void show();
}
interface B1 {
    void show();
}
interface C1 extends A1, B1 {
    public abstract void show();
}
//3.一个类继承了父类，又同时实现了接口，如果父类中和接口中有同名的默认方法，实现类会优先用父类的
class Animal{
    public void show(){
        System.out.println("父类Animal中的方法show()被执行了");
    }
}
interface Swim{
    default void show(){
        System.out.println("接口Swim中的方法show()被执行了");
    }
}
class Dog extends Animal implements Swim{}


//4.一个类实现了多个接口，如果多个接口中存在同名的默认方法，可以不冲突。这个类重写该方法即可。
interface A2 {
   default void go(){}
}
interface B2 {
    default void go(){}
}
class A3 implements A2,B2{

    @Override
    public void go() {
        System.out.println("重写go()方法");
    }
}